Goals:
– Find significant events based on depth, magnitude, and
intensity.
– Focus on the tools used in earthquake
analysis.
– Display outlying observations in a
graphically asestetic way.
Step 1 - Import and the GeoJson file and CSV, and
convert them into a dataframe.
# create a spatial dataframe of the geojson file.
spdf <- geojson_read(here("data", "shakemap.geojson"), what="sp")
df <- as.data.frame(spdf)
# create dataframe from the CSV.
eq_csv <- read_csv(here("data", "2.5_month.csv"), show_col_types = FALSE)
Step 2 - Time for data wrangling. First off we need
to parse out the year, month, and day from the datetime string in the
‘time’ column to get a simpler look at the data. We also want to create
one more columns a named ‘magAll’ that will show us where magnitudes are
greater than average over the last month.
# parse out time columns, create 'magAll', and drop uneccessary variables.
eq_new <- eq_csv %>%
separate(time, c("year", "month", "day"), remove = FALSE) %>%
mutate(magAll = mag > mean(mag, na.rm = TRUE)) %>%
select(id, year, month, day, depth, magAll, depthError)
Step 3 - Join the tables together based on ‘id’ to
get the attributes desired for the analysis.
# select, desired columns, rename certain variables, and sort by magnitude.
eq_df <- left_join(eq_new, df, by='id') %>%
select(year, month, day, depth, depthError, magAll, mag, magType, place, felt, cdi, mmi, sig, net, title) %>%
rename(intensity = mmi, intensityMax = cdi, magnitude = mag, significance = sig) %>%
arrange(-magnitude)
select_all(eq_df)
Step 4 - Lets display a chart that represents depth
vs magnitude, and compares the intensity felt by citizens reporting
observations. We would expect to see a higher intensity values with
increasing magnitude at shallower depths.
p <- eq_df %>%
filter(intensity > 0) %>%
ggplot(aes(x = depth, y = magnitude, color = intensity, size = magnitude)) +
geom_jitter(alpha = 0.7) +
scale_color_distiller(palette = "Spectral", direction = -1) +
ggtitle("USGS Earthquakes (Magnitude VS Depth)")
ggplotly(p, width = 900, height = 600, tooltip = c("x", "y", "color"))
Step 5 - Magnitude types are the method or
algorithm used to calculate the preferred magnitude for an event. A
table describing the magnitude types can be found here https://www.usgs.gov/programs/earthquake-hazards/magnitude-types.
Since the different methods are used for variations in earthquakes. Lets
split the analysis into individual tables based on the algorithms and
see which ones are preffered based on depth and magnitude.
# facet wrap -----------
p <- eq_df %>%
filter(!is.na(magType)) %>%
ggplot(aes(x = depth, y = magnitude, color = magnitude)) +
geom_jitter(alpha = 0.7) +
scale_color_distiller(palette = "Reds", direction = 1) +
facet_wrap(~ magType) +
ggtitle("USGS Earthquakes (Magnitude Type)")
ggplotly(p, width = 900, height = 600, tooltip = c("x", "y"))
Step 6 - Lets take a look and try to find the most
significant earthquake that recieved the most attention by people and
sensors in the last 30 days. Then export the plot as a .jpg file.
p <- eq_df %>%
filter(intensity > 0) %>%
ggplot(aes(x = day, y = significance, color = significance, size = magnitude, title = title)) +
geom_jitter(alpha = 0.7) +
scale_color_distiller(palette = "Purples", direction = 1) +
ggtitle("USGS Earthquakes (Most Significant)")
ggplotly(p, width = 900, height = 600, tooltip = c("title", "y"))
# export plot to .jpg with ggsave
ggsave(here("data", "sig_quakes.jpg"))
LS0tDQp0aXRsZTogIlIgRWFydGhxdWFrZXMgLSBVU0dTIFNoYWtlTWFwIERhdGEiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIyMjIFdlbGNvbWUgdG8gdGhlIGVhcnRocXVha2UgYW5hbHlzaXMgbm90ZWJvb2suIFRoZSBkYXRhIGlzIGRlcml2ZWQgZnJvbSB0aGUgVVNHUyBsaXZlIGZlZWQgb2YgZWFydGhxdWFrZXMgaW4gdGhlIHBhc3QgMzAgZGF5cyB3aXRoIGEgbWFnbml0dWRlIGdyZWF0ZXIgdGhhbiAyLjUrLiANCg0KIyMjIyAqKkdvYWxzOioqDQoNCiotLSBGaW5kIHNpZ25pZmljYW50IGV2ZW50cyBiYXNlZCBvbiBkZXB0aCwgbWFnbml0dWRlLCBhbmQgaW50ZW5zaXR5LiogPGJyIC8+DQoqLS0gRm9jdXMgb24gdGhlIHRvb2xzIHVzZWQgaW4gZWFydGhxdWFrZSBhbmFseXNpcy4qIDxiciAvPg0KKi0tIERpc3BsYXkgb3V0bHlpbmcgb2JzZXJ2YXRpb25zIGluIGEgZ3JhcGhpY2FsbHkgYXNlc3RldGljIHdheS4qDQoNCiMjIyMgRGF0YSBzb3VyY2VzIC0gaHR0cHM6Ly9lYXJ0aHF1YWtlLnVzZ3MuZ292L2VhcnRocXVha2VzL2ZlZWQvdjEuMC9nZW9qc29uLnBocA0KIyMjIyAgICAgICAgICAgICAgICBodHRwczovL2VhcnRocXVha2UudXNncy5nb3YvZWFydGhxdWFrZXMvZmVlZC92MS4wL2Nzdi5waHANCg0KIyMjIyBEb2N1bWVudGF0aW9uIC0gaHR0cHM6Ly9lYXJ0aHF1YWtlLnVzZ3MuZ292L2RhdGEvY29tY2F0L2luZGV4LnBocA0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0gDQprbml0cjo6b3B0c19jaHVuayRzZXQod2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UpDQoNCiMgaW1wb3J0IGxpYnJhcmllcw0KbGlicmFyeShoZXJlKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KFJDb2xvckJyZXdlcikNCmxpYnJhcnkocmdsKQ0KbGlicmFyeShEVCkNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShkYXRhLnRhYmxlKQ0KbGlicmFyeShqYW5pdG9yKQ0KbGlicmFyeShnZ2JlZXN3YXJtKQ0KbGlicmFyeShnZW9qc29uaW8pDQpsaWJyYXJ5KHNwKQ0KYGBgDQojIyMjIyAqKlN0ZXAgMSoqIC0gSW1wb3J0IGFuZCB0aGUgR2VvSnNvbiBmaWxlIGFuZCBDU1YsIGFuZCBjb252ZXJ0IHRoZW0gaW50byBhIGRhdGFmcmFtZS4NCmBgYHtyfQ0KIyBjcmVhdGUgYSBzcGF0aWFsIGRhdGFmcmFtZSBvZiB0aGUgZ2VvanNvbiBmaWxlLg0Kc3BkZiA8LSBnZW9qc29uX3JlYWQoaGVyZSgiZGF0YSIsICJzaGFrZW1hcC5nZW9qc29uIiksIHdoYXQ9InNwIikNCmRmIDwtIGFzLmRhdGEuZnJhbWUoc3BkZikNCg0KIyBjcmVhdGUgZGF0YWZyYW1lIGZyb20gdGhlIENTVi4NCmVxX2NzdiA8LSByZWFkX2NzdihoZXJlKCJkYXRhIiwgIjIuNV9tb250aC5jc3YiKSwgc2hvd19jb2xfdHlwZXMgPSBGQUxTRSkNCmBgYA0KIyMjIyMgKipTdGVwIDIqKiAtIFRpbWUgZm9yIGRhdGEgd3JhbmdsaW5nLiBGaXJzdCBvZmYgd2UgbmVlZCB0byBwYXJzZSBvdXQgdGhlIHllYXIsIG1vbnRoLCBhbmQgZGF5IGZyb20gdGhlIGRhdGV0aW1lIHN0cmluZyBpbiB0aGUgJ3RpbWUnIGNvbHVtbiB0byBnZXQgYSBzaW1wbGVyIGxvb2sgYXQgdGhlIGRhdGEuIFdlIGFsc28gd2FudCB0byBjcmVhdGUgb25lIG1vcmUgY29sdW1ucyBhIG5hbWVkICdtYWdBbGwnIHRoYXQgd2lsbCBzaG93IHVzIHdoZXJlIG1hZ25pdHVkZXMgYXJlIGdyZWF0ZXIgdGhhbiBhdmVyYWdlIG92ZXIgdGhlIGxhc3QgbW9udGguDQpgYGB7cn0NCiMgcGFyc2Ugb3V0IHRpbWUgY29sdW1ucywgY3JlYXRlICdtYWdBbGwnLCBhbmQgZHJvcCB1bmVjY2Vzc2FyeSB2YXJpYWJsZXMuDQplcV9uZXcgPC0gZXFfY3N2ICU+JQ0KICBzZXBhcmF0ZSh0aW1lLCBjKCJ5ZWFyIiwgIm1vbnRoIiwgImRheSIpLCByZW1vdmUgPSBGQUxTRSkgJT4lDQogIG11dGF0ZShtYWdBbGwgPSBtYWcgPiBtZWFuKG1hZywgbmEucm0gPSBUUlVFKSkgJT4lDQogIHNlbGVjdChpZCwgeWVhciwgbW9udGgsIGRheSwgZGVwdGgsIG1hZ0FsbCwgZGVwdGhFcnJvcikNCmBgYA0KIyMjIyMgKipTdGVwIDMqKiAtIEpvaW4gdGhlIHRhYmxlcyB0b2dldGhlciBiYXNlZCBvbiAnaWQnIHRvIGdldCB0aGUgYXR0cmlidXRlcyBkZXNpcmVkIGZvciB0aGUgYW5hbHlzaXMuDQpgYGB7cn0NCiMgc2VsZWN0LCBkZXNpcmVkIGNvbHVtbnMsIHJlbmFtZSBjZXJ0YWluIHZhcmlhYmxlcywgYW5kIHNvcnQgYnkgbWFnbml0dWRlLg0KZXFfZGYgPC0gbGVmdF9qb2luKGVxX25ldywgZGYsIGJ5PSdpZCcpICU+JQ0KICBzZWxlY3QoeWVhciwgbW9udGgsIGRheSwgZGVwdGgsIGRlcHRoRXJyb3IsIG1hZ0FsbCwgbWFnLCBtYWdUeXBlLCBwbGFjZSwgZmVsdCwgY2RpLCBtbWksIHNpZywgbmV0LCB0aXRsZSkgJT4lDQogIHJlbmFtZShpbnRlbnNpdHkgPSBtbWksIGludGVuc2l0eU1heCA9IGNkaSwgbWFnbml0dWRlID0gbWFnLCBzaWduaWZpY2FuY2UgPSBzaWcpICU+JQ0KICBhcnJhbmdlKC1tYWduaXR1ZGUpDQoNCnNlbGVjdF9hbGwoZXFfZGYpDQpgYGANCiMjIyMjICoqU3RlcCA0KiogLSBMZXRzIGRpc3BsYXkgYSBjaGFydCB0aGF0IHJlcHJlc2VudHMgZGVwdGggdnMgbWFnbml0dWRlLCBhbmQgY29tcGFyZXMgdGhlIGludGVuc2l0eSBmZWx0IGJ5IGNpdGl6ZW5zIHJlcG9ydGluZyBvYnNlcnZhdGlvbnMuIFdlIHdvdWxkIGV4cGVjdCB0byBzZWUgYSBoaWdoZXIgaW50ZW5zaXR5IHZhbHVlcyB3aXRoIGluY3JlYXNpbmcgbWFnbml0dWRlIGF0IHNoYWxsb3dlciBkZXB0aHMuICANCmBgYHtyfQ0KcCA8LSBlcV9kZiAlPiUNCiAgZmlsdGVyKGludGVuc2l0eSA+IDApICU+JQ0KICBnZ3Bsb3QoYWVzKHggPSBkZXB0aCwgeSA9IG1hZ25pdHVkZSwgY29sb3IgPSBpbnRlbnNpdHksIHNpemUgPSBtYWduaXR1ZGUpKSArDQogIGdlb21faml0dGVyKGFscGhhID0gMC43KSArDQogIHNjYWxlX2NvbG9yX2Rpc3RpbGxlcihwYWxldHRlID0gIlNwZWN0cmFsIiwgZGlyZWN0aW9uID0gLTEpICsNCiAgZ2d0aXRsZSgiVVNHUyBFYXJ0aHF1YWtlcyAoTWFnbml0dWRlIFZTIERlcHRoKSIpDQogIA0KDQpnZ3Bsb3RseShwLCB3aWR0aCA9IDkwMCwgaGVpZ2h0ID0gNjAwLCB0b29sdGlwID0gYygieCIsICJ5IiwgImNvbG9yIikpDQpgYGANCiMjIyMjICoqU3RlcCA1KiogLSBNYWduaXR1ZGUgdHlwZXMgYXJlIHRoZSBtZXRob2Qgb3IgYWxnb3JpdGhtIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBwcmVmZXJyZWQgbWFnbml0dWRlIGZvciBhbiBldmVudC4gQSB0YWJsZSBkZXNjcmliaW5nIHRoZSBtYWduaXR1ZGUgdHlwZXMgY2FuIGJlIGZvdW5kIGhlcmUgaHR0cHM6Ly93d3cudXNncy5nb3YvcHJvZ3JhbXMvZWFydGhxdWFrZS1oYXphcmRzL21hZ25pdHVkZS10eXBlcy4gU2luY2UgdGhlIGRpZmZlcmVudCBtZXRob2RzIGFyZSB1c2VkIGZvciB2YXJpYXRpb25zIGluIGVhcnRocXVha2VzLiBMZXRzIHNwbGl0IHRoZSBhbmFseXNpcyBpbnRvIGluZGl2aWR1YWwgdGFibGVzIGJhc2VkIG9uIHRoZSBhbGdvcml0aG1zIGFuZCBzZWUgd2hpY2ggb25lcyBhcmUgcHJlZmZlcmVkIGJhc2VkIG9uIGRlcHRoIGFuZCBtYWduaXR1ZGUuDQpgYGB7cn0NCiMgZmFjZXQgd3JhcCAtLS0tLS0tLS0tLQ0KcCA8LSBlcV9kZiAlPiUNCiAgZmlsdGVyKCFpcy5uYShtYWdUeXBlKSkgJT4lDQogIGdncGxvdChhZXMoeCA9IGRlcHRoLCB5ID0gbWFnbml0dWRlLCBjb2xvciA9IG1hZ25pdHVkZSkpICsNCiAgZ2VvbV9qaXR0ZXIoYWxwaGEgPSAwLjcpICsNCiAgc2NhbGVfY29sb3JfZGlzdGlsbGVyKHBhbGV0dGUgPSAiUmVkcyIsIGRpcmVjdGlvbiA9IDEpICsNCiAgZmFjZXRfd3JhcCh+IG1hZ1R5cGUpICsNCiAgZ2d0aXRsZSgiVVNHUyBFYXJ0aHF1YWtlcyAoTWFnbml0dWRlIFR5cGUpIikNCg0KZ2dwbG90bHkocCwgd2lkdGggPSA5MDAsIGhlaWdodCA9IDYwMCwgdG9vbHRpcCA9IGMoIngiLCAieSIpKQ0KYGBgDQojIyMjIyAqKlN0ZXAgNioqIC0gTGV0cyB0YWtlIGEgbG9vayBhbmQgdHJ5IHRvIGZpbmQgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgZWFydGhxdWFrZSB0aGF0IHJlY2lldmVkIHRoZSBtb3N0IGF0dGVudGlvbiBieSBwZW9wbGUgYW5kIHNlbnNvcnMgaW4gdGhlIGxhc3QgMzAgZGF5cy4gVGhlbiBleHBvcnQgdGhlIHBsb3QgYXMgYSAuanBnIGZpbGUuDQpgYGB7cn0NCnAgPC0gZXFfZGYgJT4lDQogIGZpbHRlcihpbnRlbnNpdHkgPiAwKSAlPiUNCiAgZ2dwbG90KGFlcyh4ID0gZGF5LCB5ID0gc2lnbmlmaWNhbmNlLCBjb2xvciA9IHNpZ25pZmljYW5jZSwgc2l6ZSA9IG1hZ25pdHVkZSwgdGl0bGUgPSB0aXRsZSkpICsNCiAgZ2VvbV9qaXR0ZXIoYWxwaGEgPSAwLjcpICsNCiAgc2NhbGVfY29sb3JfZGlzdGlsbGVyKHBhbGV0dGUgPSAiUHVycGxlcyIsIGRpcmVjdGlvbiA9IDEpICsNCiAgZ2d0aXRsZSgiVVNHUyBFYXJ0aHF1YWtlcyAoTW9zdCBTaWduaWZpY2FudCkiKQ0KICANCg0KZ2dwbG90bHkocCwgd2lkdGggPSA5MDAsIGhlaWdodCA9IDYwMCwgdG9vbHRpcCA9IGMoInRpdGxlIiwgInkiKSkNCg0KIyBleHBvcnQgcGxvdCB0byAuanBnIHdpdGggZ2dzYXZlDQpnZ3NhdmUoaGVyZSgiZGF0YSIsICJzaWdfcXVha2VzLmpwZyIpKQ0KYGBg